Ты в условиях установил каждое здание в итоге выходит так что чтобы тригер сработал нужно завершить улучшение во всех этих зданиях сделай для каждого по отдельности либо через если/тогда/иначе.
SaveUnitHandle(hash,GetHandleId(target),7,caster);
GetHandleId(target) - хендл самого юнита
LoadUnitHandle(hash,GetUnitTypeId(u),7);
GetUnitTypeId(u) - Ид типа юнита, а не хендл.
Тип передвижения на Нет ставишь?
Хотя, если здание, значит прямоугольная карта путей по игровой сетке, а не любое местоположение. Тип передвижения в этом случае не важен.
Я думаю кроме нас тут уже больше никто не напишет поэтому я закрою вопрос, спасибо за внимание и ответы.
Tobi123, Нет, конечно не его, пустышка есть. Стоп, значит надо для всех один эффект и заклинание дать? Попробую. Audes, Но не на два же слова! Но тогда как увеличить это место? Tobi123, Попробовал, выносит, как только вхожу юнитом в зону действия ауры (Аура у здания).
Если кратко, нужен mdlvis 1.39, в нём выбираешь кадры анимации на шкале, щёлкнув мышью в начале участка с ненужными кадрами, а потом Shift+щелчок мышью в конце участка, [Del].
Так ты же выключаешь триггер на 18 секунд вот он и не срабатывает.
Поставь условие, что герыч не имеет абилки-пустышки, если не имеет - дать её и через 18 сек забрать и пустить молнию.
Правда я не уверен насчёт того, отловится ли attacking unit через 18 сек вейта, проверь...
Вообще, если устраивает орбом - то даёшь "сферу молний" с эффектом "цепь молний", у которой 18 сек перезарядка(у цепи не у сферы)
Способности нужно дать юниту, и все. Если эффект временный, используем вэйт/wait (по-русски ждать) или таймеры, по истечении которого удаляем способность. Но вэйты не рекомендуются для использования.
событие - юнит применяет способность
условие -применяемая способность == тип твоей способности
действие - добавить способность
ждать 15 сек.
действие - удалить способность
Как объединить зелья лечения в одно с зарядом, если герой имеет одно в инвентаре и поднимает второе?
обычно используют "событие - юнит получает предмет", И на предмет, который вы получаете, ссылается переменная, которая называется item being manipulated. А юнит, который получает итем - Triggering Unit. Вы можете с помощью этой переменной итема узнать тип, сравнить. Потом циклом пробегаете по слотам (от 1 до 6), тут вся суть в одной команде триггерной (item in slot X, итем в слоте Х) и проверяете есть ли такой же итем (не забываем делать проверки, на то что этот предмет не равен item being manipulated и сравниваете не одинаковые ли типы). Если есть такой же (находите тот же тип что и item being manipulated), то от item being manipulated берете заряды и прибавляете к зарядам существующего, а потом item being manipulated удаляете. Недостаток: при заполненном инвентаре такая штука не будет работать.Не хватает свободного места.
код
цикл А от 1 до 6
if тип итема (item being manipulated) РАВНО тип итема (item in slot А) and item being manipulated НЕ РАВНО item in slot А then проверяете
set k = Charges remaining in ( item being manipulated) + Charges remaining in ( item in slot А) складываете заряды
Set charges remaining in ( item in slot А) to ( k) устанавливаете кол-во зарядов
Remove Item (item being manipulated) удаляете
endif
Есть гуишная проверка на наличие итема определенного типа в инвентаре, но она утечна. И лучше циклом прогонять.
Кстати выше пример, там вот дропают итем, зачем? чтобы проверить есть ли такой же итем. А то мб проверка на наличие итема определенного типа в инвентаре найти подобранный итем. А нам нужно знать, что есть еще один, кроме подобранного. Поэтому дропают. Только не понятно зачем создаете новый итем.
Проверка, на то что подобранный предмет имеет зарядов больше 0, говорит нам о том что это не обычный предмет.
есть статьи
Как зелье с зарядом разделить, если игрок перекладывает зелье с зарядом в другую ячейку инвентаря, если возможно, то разделение происходить должно только при нажатии какой-то клавиши?
можно перекладывать в другой слот. для этого ловят приказ. Короче смотрите системы CCS
там создают новый такой же предмет, и выделяют кол-во зарядов, деля поровну например. Абилкой например, попробуй сделать целевую активную абилку с целью предмет, указывай на инвентарь и дели.
Как это можно сделать покороче для множества разных типов предметов?
всмысле покороче? сделать под одну группу? есть же классификация. Я вот делаю так, что все предметы, которые с зарядами, должны иметь классификацию "с зарядами". Не помню точно как называется класс итемов.
Как правильно реализовать в инвентаре 7 слот?
если у героя заполнен инвентарь, то он может подобрать руну. Вот в доте система скрещивания. То же самое можно сделать и с зарядами. На земле у него лежат руны, при подборе руна исчезает. Но мы проверяем слоты, есть ли такой итем. Если есть, прибавляем заряды к существующему. Иначе создать новый. При дропе итема, оригинал подменяет снова на руну. В руну можно передать значения зарядов.
А также ограничения какие-то на количество зарядов нужно ставить или сама система выше какой-то планки не даст собирать?
до такого не доходил.
скинул примеры (хотя многие дурацкие, но делал здесь хгм в качестве ответов)
вот еще одна система hh
Тестил, тестил. Думал найду ошибку. Короче не знаю в чем дело, видимо и в правду баг. Решил по-другому. Ловить поставку, и ловить продажу. То есть ловить то, что пришло, и то, что ушло.
событием - "юнит закладывает в лавку" (EVENT_PLAYER_UNIT_PAWN_ITEM) ловим продажу итемов.
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)
событием - "юнит закладывает из лавки (продает артефакт)" (EVENT_PLAYER_UNIT_SELL_ITEM) ловим покупку итемов
GetSellingUnit()=GetTriggerUnit()=продающий торговец (обычно это магазин)
GetBuyingUnit() = покупающий торговец (наш герой получает артефакты)
Решил, я по-своему. Короче, видимо, итем в магазине исчезает при добавлении. Попробовал запоминать все добавленные итемы, и при добавлении я сначала удалю всё в магазине, а потом заново добавлю. Пришлось, еще порядок (номер слотов) запоминать, а то строятся ключи хэша на строгом порядке. Если возьму и заберу итем посередине, придется заново выстраивать порядок. Не знаю, пока тестил много времени, пока без косяков. Главное, что работает. Меня это радует. Но пока не буду спешить. Мне бы хотелось затестить норм.
8gabriel8, приоритет менять нельзя
стандартный ии использует это поле для контроля юнитов
пишем свой ии в котором вместо приоритета юзаем свою переменную которой можем задавать любое значение 8gabriel8:
Но для меня это путь в Москву через Владивосток
ну если между тобой и Москвой находится Владивосток то иначе никак(а вар3 как раз расположен за Владивостоком)
Короче понял как сделать (ну и в принципе ничего сложного. методом тыка узнал как это сделать. до этого уже 2 часа добил):
расписываю
у меня есть почва
обрабатываю. Но вообще-то не нужно вырезать, просто выделите и все. Но я уж поздно, обработал. По примеру уберсплатов для зданий в варике не вырезаны края. Просто альфа канал стоит
Ну и .. (понял бы любой)
сохраняете в формате tga, потом конвентируете (можно прогой Warcraft 3 Viewer). и смотрим, что получилось
получилось не очень, нужно наверное другую картинку подобрать.
Я для этого сделал свою системку поддержания эффекта оглушения.
Создаётся на карте даммик, с молотом бурь, 1 уровень, без маны, ренж 99999, время оглушения - 0.00
В нужный момент отдаёт приказ застанить юнита, и записываем нужное нам время (например 2.50 сек)
когда время истекает - снимает бафф
Если пытаемся станить юнита у которого уже есть стан - ищем его время и обновляем на новое
Если новое меньше старого - ничего не делаем. Если новое больше старого - пишем новое.
Что там за ужасные условия?
Короче. Можешь сделать вот так вота:
Исходные данные- массив героев.
1 способ- создаешь массив, размер которого = размеру массива героев и заполняешь его линейным методом. То есть с помощью рандома выбираешь первое число. И потом с помощью последовательности i+(k*q), где i- изначальная ячейка; k- попытка: q- шаг.
2 способ- также создаешь массив, но заполняешь его вот так: рандомом выбираешь героя. Проверяешь, имеется ли уже такой в новом массиве. Если да- перевыбираешь, если нет- вставляешь и переходишь к следующей ячейки
Таким образом каждую игру будет генерироваться твой массив случайным образом. Заводишь переменную s, считающую сколько героев уже вытащили, и создаешь героя из твоего нового сформированного массива под номером s
Проще сказать: формируй каждую игру новый массив и вытаскивай по одному герою из него каждый раз, когда требуется
Если коротко: имена функций - жуть, не вижу определения PureDamageWithCrit, некоторые вызовы будут чуть медленнее из-за экономии места, ну и без хештаблицы можно, обойтись структурами + TimerExploit. Блин, два раза кодировка сбивается в комменте, теперь вообще текста не видно, что за...
Мне кажется проблема в этом, он не просто передвигает, он перемещает с одной дистанции на другую, т.е рывками
Криво реализовано движение. У тебя смещение происходит сразу на 300 единиц, поэтому пролетаешь декорации, и потому, что функция SetUnitXY перемещает в точку беспрепятственно, игнорируя занимаемое юнитом пространство. Попробуй сделать так:
поменяй это
Потому что пауза снимает часть эффекта москитов, а многие абилки паузят юнитов - ну чтобы панда пивовар не бегал в ульте пока бегают три духа к примеру, голем наверное создается сразу и паузится пока не пройдет анимация а потом пауза снимается, хз как там конечно близзарды сделали и зачем, но факт остается фактом.
Жрет не существенно, но я чаще всего выключаю запись. Когда тестирует другой человек, самому легче наблюдать за багами и из за чего они происходят через реплей, чем искать причину их возникновения из слов.
Смотря на сколько времени рассчитана карта. Если на пару часов, то ничего страшного, а если на 10 и больше, то желательно не записывать.
Причина может быть в путях к jngp, обычно для вызова джасхелпера нужно 2 сохранения подряд в папку, где нет кириллицы. Бтв, можно вызвать коплит карты вручную через Sc.exp > Compile map. А так же может быть выключен сам джасхелпер в vjass > enableJassHelper.
pro100master, сам в шоке. Первый раз такие траблы. pro100master, интересное кино о_О! Переименовал файл карты и юзанул на него Sc.Exp -> Compile Map.. И о чудо! Всё работает... Короче прошу простить за то что потривожил.
я изменил там все поля связанные с опытом на ноль (кроме фактора предыдущего значения, он ниже единицы не ставился), а с таблиц просто поудалял значения. вот видимо при загрузке оно туда вписывало стандартные... сейчас поставил туда тоже нолик, все норм стало. (:
Посмотри в игровых константах, скорее всего там есть. А так мне приходит в голову вариант триггерный, когда все появляющиеся на карте юниты заносятся в триггер отлова урон, где два проверочных условия: источник урона-здание, наносимый урон больше или равен текущему здоровью, а в действии нанести этот урон от лица героя, владелец которого соответствует источнику урона.
Gerhop, проверь занесены ли даммики в группу. Если занесены и триггер у тебя включен, то хоть что-то должно происходить. НО на гуи такое сделать сложно и нефиг делать хотя бы из-за того, что играть ты сможешь ну максимум минут 20. Потом вар скрашится на рабочий стол.
Почитай про утечки точек, как их создавать и удалять. Не знаю, как в твоём новом патче, но в 1.26 приказ отдаётся максимум 12 юнитам, у тебя может быть также, потому лучше отдавать приказ сразу после создания.
Предлагаю улучшить так:
Создать переменные для двух точек;
В триггере инициализации указать точкам значение центра областей 016 и 025;
Сделать периодический триггер с условием, что Король Мёртвых жив, а в действиях создание групп юнитов в одной точке, а сразу после создания приказ (Last Created Group) Перейти, нападая на противников, в другую точку;
По идее ещё бы отключить триггер за ненадобностью после смерти Короля Мёртвых, раз уж много таких триггеров, но всё равно изменение нагрузки будет незаметным, поэтому можно не отключать.
P. S. Утечка точки весит 0.361 кб, даже если не удалять утечки в этом триггере, то за 30 минут это будет 0.361х4х30=43.32 кб, что вполне приемлимо.
Да, сейчас проверил, не работает отражение по вершинам. Казалось, что раньше это делал через отрицательный масштаб.
Но есть такой комментарий, где кроме матрикса предлагают отрицательный масштаб для bone_root в глобальной анимации задать:
Вопрос есть в FAQ вроде. Необходимо добавить действие "окружение - включить последний созданный эффект погоды"
Ну и настройки графики должны быть как минимум на средних!
Эффекты стакаются в одном регионе (и даже чуть дальше него) крайне сложным образом, и зависит их совместимость от равкода. Я, когда писал погоду для морлоков с этим сталкивался, и возможно описывал проблему... лет 10 назад) Лечится импортом своей таблицы с погодой и подборкой равкодов. Ну и как вариант для более сильного дождя например можно вместо попытки добавить 2 эффекта и той-же таблице просто прописать побольше частиц.
После создания, погодный эффект нужно занести в переменную и включить его (там есть действие). Когда нужно изменить погодный эффект, то старый нужно удалить, для этого мы его занесли в переменную.
ХеллКор вроде писал когда-то, что на самом деле всё работает, даже не смотря на то, что выдаёт ошибку, сообщение до администрации всё равно доходит. Не знаю, правда, как сейчас.
Да старая известная бага, зашитая глубоко в недрах кода. Поэтому фиксить врятли будем. Но пока что думаем, как это можно исправить в будущем. В любом случае постараемся решить её в новом релизе
тут дело в конфликте
ибо системные функции(создание стартовых точек,main и прочее) депротектор автоматически переносит в файл для пользовательских функций
и теперь тебе надо просто удалить их из этого файла
файл называется war3map.wct
вот на будущее статья
Руками, но ломать карты нехорошо, мб попытаться сделать своими руками?
Карту крепить сюда, а не на ргхосты де хрен что скачаешь.
Кстати а какие могут быть проблемы со взломом у нашего юнного ломастера? Карта покрыта тулами векса, открыл RMPQ, ничего особенного.
Если ничего не знаешь об устройстве карты и JASS сразу забудь о взломе, ибо ты ничего не сможешь сделать сам.
» WarCraft 3 / Не появляется юнит
» WarCraft 3 / 2 книги заклинаний у одного воина
» WarCraft 3 / Удаление лишнего
» WarCraft 3 / Способности предмета
» WarCraft 3 / Объединение предметов
» WarCraft 3 / Магазин в варкрафт
» WarCraft 3 / Запретить автоатаку
» WarCraft 3 / Ошибка при выборе юнита в триггере
» WarCraft 3 / Приоритет атаки ИИ
» WarCraft 3 / Не открывает карту в warcraft 3
» WarCraft 3 / PauseUnit
» WarCraft 3 / Статы предметов
» WarCraft 3 / Москиты
» WarCraft 3 / Реплей
» WarCraft 3 / jasshelper не работает
» WarCraft 3 / Проверка файла мемхаком
» WarCraft 3 / Опыт за убийство.
» WarCraft 3 / Редактор
» WarCraft 3 / Проблема не знаю с чем
» WarCraft 3 / Как улучшить триггер?
» WarCraft 3 / Анимация
» WarCraft 3 / Погода
» Администрация XGM / Ссылка на комментарий
» WarCraft 3 / Взлом карты.
» WarCraft 3 / Порча